#ifndef __M_LOG_H__
#define __M_LOG_H__

#include "logger.hpp"

namespace log
{
    // 1. 提供单例日志器对象的全局接口，避免用户自己创建
    Logger::ptr getLogger(const std::string &name)
    {
        return log::LoggerManager::getInstance().getLogger(name);
    }
    Logger::ptr defaultLogger()
    {
        return log::LoggerManager::getInstance().defaultLogger();
    }
// 2. 宏函数代理日志器接口（使用默认构造器，同步标准输出）
#define DEBUG(fmt, ...) log::defaultLogger()->debug(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define INFO(fmt, ...) log::defaultLogger()->info(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define WARN(fmt, ...) log::defaultLogger()->warn(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define ERROR(fmt, ...) log::defaultLogger()->error(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define FATAL(fmt, ...) log::defaultLogger()->fatal(__FILE__, __LINE__, fmt, ##__VA_ARGS__)

}
#endif